package com.gpframework.module.purchase.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.ToString;
import lombok.experimental.Accessors;
import com.gpframework.common.annotation.Excel;
import java.util.Date;
import java.math.BigDecimal;

/**
 * @ClassName GpPurchaseTrackVo
 * @Author gpframework
 * @Date 2023-12-22
 * @Version 1.0.0
 * @Description 采购跟踪单Vo对象
 */
@Data
@ToString
@EqualsAndHashCode
@NoArgsConstructor
@Accessors(chain = true)
public class GpPurchaseTrackVo {
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @ApiModelProperty("${column.columnComment}")
    private Long id;

    /** 品牌id */
    @Excel(name = "品牌id")
    @ApiModelProperty("品牌id")
    private String brandId;

    /** 品牌名称 */
    @Excel(name = "品牌名称")
    @ApiModelProperty("品牌名称")
    private String brandName;

    /** 缺货报库存申请表id */
    @Excel(name = "缺货报库存申请表id")
    @ApiModelProperty("缺货报库存申请表id")
    private Long productionApplicationId;

    /** 做货明细表id */
    @Excel(name = "做货明细表id")
    @ApiModelProperty("做货明细表id")
    private Long purchasingDetailsId;

    /** 排单表id */
    @Excel(name = "排单表id")
    @ApiModelProperty("排单表id")
    private Long procureSchedulingId;

    /** 到货单id */
    @Excel(name = "到货单id")
    @ApiModelProperty("到货单id")
    private Long purchaseReceiptId;

    /** 跟踪单号 */
    @Excel(name = "跟踪单号")
    @ApiModelProperty("跟踪单号")
    private String sn;

    /** 批号 */
    @ApiModelProperty("批号")
    private String batchNo;

    /** 供应商 */
    @Excel(name = "供应商")
    @ApiModelProperty("供应商")
    private String supplier;

    /** 发货日期 */
    @Excel(name = "发货日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("发货日期")
    private Date sendTime;

    /** 仓点 */
    @Excel(name = "仓点")
    @ApiModelProperty("仓点")
    private String storePoint;

    /** 品名 */
    @Excel(name = "品名")
    @ApiModelProperty("品名")
    private String productName;

    /** 颜色 */
    @Excel(name = "颜色")
    @ApiModelProperty("颜色")
    private String productColor;

    /** 成本 */
    @Excel(name = "成本")
    @ApiModelProperty("成本")
    private BigDecimal cost;

    /** 胚布单价 */
    @Excel(name = "胚布单价")
    @ApiModelProperty("胚布单价")
    private BigDecimal fabricPrice;

    /** 染费单价 */
    @Excel(name = "染费单价")
    @ApiModelProperty("染费单价")
    private BigDecimal dyeingPrice;

    /** 染厂 */
    @Excel(name = "染厂")
    @ApiModelProperty("染厂")
    private String dyeingFactory;

    /** 染厂进仓数量 */
    @Excel(name = "染厂进仓数量")
    @ApiModelProperty("染厂进仓数量")
    private Long dyeingIntoNum;

    /** 成品条数 */
    @Excel(name = "成品条数")
    @ApiModelProperty("成品条数")
    private Long productsNum;

    /** 打码规格（足码） */
    @Excel(name = "打码规格", readConverterExp = "足=码")
    @ApiModelProperty("打码规格（足码）")
    private String codingSpecificationsSufficient;

    /** 打码规格（空码） */
    @Excel(name = "打码规格", readConverterExp = "空=码")
    @ApiModelProperty("打码规格（空码）")
    private String codingSpecificationsEmpty;

    /** 大小条（码） */
    @Excel(name = "大小条", readConverterExp = "码=")
    @ApiModelProperty("大小条（码）")
    private Integer sizeBar;

    /** 成品总码数（足） */
    @Excel(name = "成品总码数", readConverterExp = "足=")
    @ApiModelProperty("成品总码数（足）")
    private BigDecimal finishProductQuantitySufficient;

    /** 成品入库总码数（空） */
    @Excel(name = "成品入库总码数", readConverterExp = "空=")
    @ApiModelProperty("成品入库总码数（空）")
    private BigDecimal finishProductQuantityEmpty;

    /** 单条重量KG */
    @Excel(name = "单条重量KG")
    @ApiModelProperty("单条重量KG")
    private BigDecimal singleWeight;

    /** 成品净重KG */
    @Excel(name = "成品净重KG")
    @ApiModelProperty("成品净重KG")
    private BigDecimal finishProductWeight;

    /** 纸管重量KG */
    @Excel(name = "纸管重量KG")
    @ApiModelProperty("纸管重量KG")
    private BigDecimal paperTubeWeight;

    /** 损耗KG */
    @Excel(name = "损耗KG")
    @ApiModelProperty("损耗KG")
    private BigDecimal lossWeight;

    /** 损耗率 */
    @Excel(name = "损耗率")
    @ApiModelProperty("损耗率")
    private BigDecimal lossRate;

    /** 正常损耗值 */
    @Excel(name = "正常损耗值")
    @ApiModelProperty("正常损耗值")
    private BigDecimal normalLossValue;

    /** 损耗差异 */
    @Excel(name = "损耗差异")
    @ApiModelProperty("损耗差异")
    private BigDecimal lossDiff;

    /** 胚布出码率（码/KG） */
    @Excel(name = "胚布出码率", readConverterExp = "码=/KG")
    @ApiModelProperty("胚布出码率（码/KG）")
    private BigDecimal greyClothOutputRate;

    /** 成品出码率（码/KG） */
    @Excel(name = "成品出码率", readConverterExp = "码=/KG")
    @ApiModelProperty("成品出码率（码/KG）")
    private BigDecimal finishProductOutputRate;

    /** 标准出码率（码/KG） */
    @Excel(name = "标准出码率", readConverterExp = "码=/KG")
    @ApiModelProperty("标准出码率（码/KG）")
    private BigDecimal standardOutputRate;

    /** 出码差异 */
    @Excel(name = "出码差异")
    @ApiModelProperty("出码差异")
    private BigDecimal outputDiff;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty("备注")
    private String remarks;

    /** 订单状态 */
    @Excel(name = "订单状态")
    @ApiModelProperty("订单状态")
    private String orderState;

    /** 订单二维码 */
    @Excel(name = "订单二维码")
    @ApiModelProperty("订单二维码")
    private String orderQrCode;

    /** 操作人id */
    @Excel(name = "操作人id")
    @ApiModelProperty("操作人id")
    private Long merchandiserId;

    /** 操作人 */
    @Excel(name = "操作人")
    @ApiModelProperty("操作人")
    private String merchandiser;

    /** 操作时间 */
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("操作时间")
    private Date operatorTime;

    /** 关联收货单号 */
    @Excel(name = "关联收货单号")
    @ApiModelProperty("关联收货单号")
    private String relatedReceiveNumber;

    /** 排序 */
    @Excel(name = "排序")
    @ApiModelProperty("排序")
    private Integer sort;

    /** 创建者 */
    @ApiModelProperty("创建者")
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    private Date createTime;

    /** 更新者 */
    @ApiModelProperty("更新者")
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("更新时间")
    private Date updateTime;

    /** 操作人名称 */
    @ApiModelProperty("操作人名称")
    private String operatorName;

    /** 操作人编号 */
    @ApiModelProperty("操作人编号")
    private String operatorNum;

    /** 列表是否修改字段（前端使用） */
    private Boolean clickEdit = false;

}
